﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string ch;

            do
            {
                Console.WriteLine("Выберите задачу:");
                Console.WriteLine("1 - первая задача");
                Console.WriteLine("2 - вторая задача");
                Console.WriteLine("3 - третья задача");
                Console.WriteLine("4 - четвертая задача");
                Console.WriteLine("5 - пятая задача");
                Console.WriteLine("6 - шестая задача");
                Console.WriteLine("7 - седьмая задача");
                Console.WriteLine("8 - восьмая задача");
                Console.WriteLine("9 - девятая задача");

                int task = Int32.Parse(Console.ReadLine());
                Console.Clear();
                Console.WriteLine(task);
                switch (task)
                {
                    case 1:
                        task = 1;
                        DoFirstTask();
                        break;
                    case 2:
                        task = 2;
                        DoSecondTask();
                        break;
                    case 3:
                        task = 3;
                        DoThirdTask();
                        break;
                    case 4:
                        task = 4;
                        DoFourthTask();
                        break;
                    case 5:
                        task = 5;
                        DoFifthTask();
                        break;
                    case 6:
                        task = 6;
                        DoSixthTask();
                        break;
                    case 7:
                        task = 7;
                        DoSeventhTask();
                        break;
                    case 8:
                        task = 8;
                        DoEighthTask();
                        break;
                    case 9:
                        task = 9;
                        DoNinethTask();
                        break;
                }
                Console.WriteLine("Хотите продолжить? Y/N");
                ch = Console.ReadLine().ToLower();
                Console.Clear();
            }
            while (ch == "y");
        }


            static void DoFirstTask()      //Вывести все положительные двузначные числа кратные пяти
            {

                int i;
                for (i = 10; i < 99; i++)
                {
                    int b = i % 5;
                    if (b == 0)
                    {
                        Console.WriteLine(i);
                    }
                }
            }
            static void DoSecondTask()   //С клавиатуры вводятся n чисел. Составьте программу, которая определяет кол-во отрицательных, кол-во положительных и кол-во нулей среди введеных чисел.Значение n вводится с клавиатуры.
            {
                Console.WriteLine("Введите кол-во чисел n:");
                int n = Int32.Parse(Console.ReadLine());
                int a = 0;
                int b = 0;
                int c = 0;
                for (int i = 1; i <= n; i++)
                {
                    Console.WriteLine("Введите числa:");
                    int number = Int32.Parse(Console.ReadLine());

                    if (number > 0)
                    {
                        a++;
                    }
                    else if (number < 0)
                    {
                        b++;
                    }
                    else
                    {
                        c++;
                    }
                }
                Console.WriteLine("Кол-во положительных чисел: {0}", a);
                Console.WriteLine("Кол-во отрицательных чисел: {0}", b);
                Console.WriteLine("Кол-во нулей: {0}", c);
            }

            static void DoThirdTask()     //3) Пользователь вводит число. 3.1) Определить количество цифр в числе  3.2) Найти минимальную и максимальную цифру числа
            {
                Console.WriteLine("Введите число:");
                int number = Int32.Parse(Console.ReadLine());
                int sum = 0;
                int max = 0;
                int min = 9;
                do
                {
                    sum++;

                    int lastNumber = number % 10;
                    number = number / 10;
                    if (lastNumber < min)
                    {
                        min = lastNumber;
                    }
                    if (lastNumber > max)
                    {
                        max = lastNumber;
                    }
                }
                while (number > 0);
                Console.WriteLine("Кол-во цифр в числе: {0}", sum);
                Console.WriteLine("Минимальное значение цифры в числе: {0}", min);
                Console.WriteLine("Максимальное значение цифры в числе: {0}", max);
            }

            static void DoFourthTask()    //4) Составьте программу, выводящую на экран квадраты чисел от 10 до 20 включительно.
            {
                int stepen;
                for (int i = 10; i <= 20; i++)
                {
                    stepen = i * i;
                    Console.WriteLine(stepen);
                }
            }

        static void DoFifthTask()    //5) Пользователь вводит три числа, вывести максимальное из них.
        {
            Console.WriteLine("Введите число 1:");
            int n1 = Int32.Parse(Console.ReadLine());
            Console.WriteLine("Введите число 2:");
            int n2 = Int32.Parse(Console.ReadLine());
            Console.WriteLine("Введите число 3:");
            int n3 = Int32.Parse(Console.ReadLine());
            int max;
            if (n1>=n2)
            {
                max = n1;
            }
            else 
            {
                max = n2;
            }
            if (n3>max )
            {
                max = n3;
            }
            Console.WriteLine("Максимальное число: {0}", max);
        }


        static void DoSixthTask()    //Вывести число наоборот
        {
            Console.WriteLine("Введите число:");
            int number = Int32.Parse(Console.ReadLine());

            Console.Write("Число наоборот: ");

            int lastNumber = 0;
            while (number > 0)
            {
                lastNumber = number % 10;
                number /= 10;
                Console.Write(lastNumber);
            }
            Console.WriteLine("");
        }

        static void DoSeventhTask()     //В банк на трёхпроцентный вклад положили S гривен. Какой станет сумма вклада через N лет
        {
            Console.WriteLine("Введите сумму депозита, грн:");
            double S = double.Parse(Console.ReadLine());
            Console.WriteLine("Введите кол-во лет:");
            double N = double.Parse(Console.ReadLine());
            double vklad1 = 0;
            for (int i = 1; i <= N; i++)
            {
                vklad1 = S+S*0.03;
                S = vklad1;
                  
            }
            Console.WriteLine("Сумма вклада под 3% составит через {0} лет составит {1}", N, S=Math.Round(S,2));
        }

        static void DoEighthTask()   //Даны натуральные числа от 20 до 50.Напечатать те из них, которые делятся на 3, но не делятся на 5
        {
            for (int i=20; i<=50; i++)
            {
                int a = i % 3;
                int b = i % 5;
                if (a==0 && b!=0)
                {
                    Console.Write("{0} ", i);
                }
            }
            Console.WriteLine("");
        }

        static void DoNinethTask()         //Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12,..., 24 часа.
        {
            int amCount = 1;
            int cellCount = 0;
            int step = 3;
            Console.WriteLine("Через 3, 6, 9, 12, 15, 18, 21 и 24 часа амеба разделится на N клеток соответственно:");
            for (int i = 3; i <= 24; i += step)
            {
                cellCount = amCount * 2;
                amCount = cellCount;
                Console.Write("{0} ", amCount);
            }
            Console.WriteLine("");
        }

    }
    }
